package com.sxpcwlkj.sxpcwlkj.entity.bo;

import com.sxpcwlkj.common.utils.DateUtil;
import com.sxpcwlkj.framework.config.ValidatedGroupConfig;
import java.io.Serial;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import io.github.linpeilie.annotations.AutoMapper;
import org.springframework.format.annotation.DateTimeFormat;
import com.sxpcwlkj.sxpcwlkj.entity.StoreMember;
import java.util.Date;
import com.sxpcwlkj.datasource.entity.BaseEntity;

/**
* 会员Bo
*
* @author 西决
* @Doc <a href='https://www.mmsadmin.com'>MMS文档</a>
*/
@Data
@AutoMapper(target = StoreMember.class, reverseConvertGenerate = false)
@EqualsAndHashCode(callSuper=false)
public class StoreMemberBo  extends BaseEntity {
	@Serial
	private static final long serialVersionUID = 1L;

	/**
	 * ID
	 */
	@NotBlank(message = "ID不能为空" ,groups = {ValidatedGroupConfig.update.class})
	private String id;
	/**
	 * 昵称
	 */
	@NotBlank(message = "昵称不能为空" ,groups = {ValidatedGroupConfig.insert.class,ValidatedGroupConfig.update.class})
	private String nickname;
	/**
	 * 账号
	 */
	@NotBlank(message = "账号不能为空" ,groups = {ValidatedGroupConfig.insert.class,ValidatedGroupConfig.update.class})
	private String account;
	/**
	 * 性别
	 */
	@NotNull(message = "性别不能为空" ,groups = {ValidatedGroupConfig.insert.class,ValidatedGroupConfig.update.class})
	private Integer sex;
	/**
	 * 手机号
	 */
	@NotBlank(message = "手机号不能为空" ,groups = {ValidatedGroupConfig.insert.class,ValidatedGroupConfig.update.class})
	private String phone;
	/**
	 * 密码
	 */
	@NotBlank(message = "密码不能为空" ,groups = {ValidatedGroupConfig.insert.class,ValidatedGroupConfig.update.class})
	private String password;
	/**
	 * 头像
	 */
	@NotBlank(message = "头像不能为空" ,groups = {ValidatedGroupConfig.insert.class,ValidatedGroupConfig.update.class})
	private String headPortrait;
	/**
	 * 生日
	 */
	@NotNull(message = "生日不能为空" ,groups = {ValidatedGroupConfig.insert.class,ValidatedGroupConfig.update.class})
	private Date birthday;
	/**
	 * 信用分
	 */
	@NotNull(message = "信用分不能为空" ,groups = {ValidatedGroupConfig.insert.class,ValidatedGroupConfig.update.class})
	private Integer reputationScore;
	/**
	 * 级别
	 */
	@NotNull(message = "级别不能为空" ,groups = {ValidatedGroupConfig.insert.class,ValidatedGroupConfig.update.class})
	private Integer level;
	/**
	 * 邀请码
	 */
	@NotBlank(message = "邀请码不能为空" ,groups = {ValidatedGroupConfig.insert.class,ValidatedGroupConfig.update.class})
	private String invitationCode;
	/**
	 * 秘钥
	 */
	@NotBlank(message = "秘钥不能为空" ,groups = {ValidatedGroupConfig.insert.class,ValidatedGroupConfig.update.class})
	private String privateKey;
	/**
	 * 微信openid
	 */
	@NotBlank(message = "微信openid不能为空" ,groups = {ValidatedGroupConfig.insert.class,ValidatedGroupConfig.update.class})
	private String wxOpenid;
	/**
	 * 支付宝openId
	 */
	@NotBlank(message = "支付宝openId不能为空" ,groups = {ValidatedGroupConfig.insert.class,ValidatedGroupConfig.update.class})
	private String alipayOpenid;
	/**
	 * 抖音openId
	 */
	@NotBlank(message = "抖音openId不能为空" ,groups = {ValidatedGroupConfig.insert.class,ValidatedGroupConfig.update.class})
	private String douyinOpenid;
	/**
	 * 最后登录IP
	 */
	@NotBlank(message = "最后登录IP不能为空" ,groups = {ValidatedGroupConfig.insert.class,ValidatedGroupConfig.update.class})
	private String lastLoginIp;
	/**
	 * 支付密码
	 */
	@NotBlank(message = "支付密码不能为空" ,groups = {ValidatedGroupConfig.insert.class,ValidatedGroupConfig.update.class})
	private String payPassword;
}
